In order to achieve broad customer acceptance for a computer software application, software providers must make their software applications available in a variety of configurations. These software applications may be configured according to a variety of factors, including spoken languages, computer hardware systems, single and multi-user systems, enterprise systems, and home/professional systems, to name just a few. Operating systems are excellent examples of software applications which are available in a wide variety of configurations. For example, configurations of Microsoft Corporation's Windows operating system are currently available in English, French, Spanish, and German, to name just as few, as well as student, home, and professional editions, and small office and enterprise versions. Each specific configuration is generally referred to as a build of the software application, or more simply a build, because the application must be particularly built, i.e., compiled, assembled, linked, etc., to create a particular configuration.
For a single user, obtaining a particular software build, and installing the build on the user's computer, is a relatively straightforward task. However, in other situations, deploying the build to a target computer can be quite challenging. For example, multinational enterprises may require a variety of different builds of the same software application within the enterprise. Some enterprise users may require advanced tools that are part of a professional build, while others may need only the basics. Still further, some of the offices in the enterprise may require an English build, while other offices need other languages, such as a French build. Clearly, for these types of enterprises, centralizing the distribution, or deployment, of a standard software application can be complex and challenging. More often, there is no centralized control. Instead, information technology (IT) personnel in each office operate semi-autonomously.
Hardware vendors are also faced with the challenge of deploying multiple builds of the same software application. For example, hardware vendors typically install an operating system on each system that is sold. In order to sell their computer systems to more than one class of user, e.g. home users and business users, the hardware vendor must be adaptable, able to install a particular operating system build according to a user's request. However, deploying the particular operating system build must be done efficiently in order to be delivered profitably. Of course, hardware vendors also commonly install numerous other software applications on a new system, many of which are available in a variety of configurations/builds, and must be deployed according to the particular operating system build installed on the new system. Clearly, hardware vendors would benefit from a system and method for deploying multiple software application builds onto a target computer.
Software providers, those who develop software applications in multiple configurations, would also benefit from a system and method for deploying multiple software application builds onto a target computer. For example, the software provider's quality assurance personnel, i.e., testers, are charged with testing all of a software application's builds. This often requires that testers install one build, run their battery of tests against that build, analyze the results, uninstall the build, and then repeat the process with another build. Clearly, efficiently managing the installation/deployment of the builds onto a tester's computer would reduce the amount of time involved with installing each build, and increase the amount of time that the tester could focus on quality assurance.
What is needed is a system and method capable of deploying multiple software application builds to a target computer. The present invention addresses these needs, and others, found in the prior art.